﻿create database NhanKhau

use NhanKhau
go 

create table Nhankhau(
	MaNK int not null primary key,--, 2 số xã, 6 số nhân khẩu
	HoTen nvarchar(30) not null,
	TenGoiKhac  nvarchar(30),
	CMND char(12),
	MaKS bigint,-- tương tự mã nhân khẩu
	NgaySinh date,
	GioiTinh bit,
	QueQuan nvarchar(50),
	MaDT tinyint,
	QuanHe nvarchar(12),
	NgheNghiep nvarchar(50),
	MaQT tinyint,
	MaCT bigint,
	MaTG tinyint,
	MaTD tinyint,
	MaSHK int,
	--MaCDi int,--tuong tự
	--MaCDen int-- tương tự
)

create table GiayKhaiSinh(
	MaKS int not null primary key,
	NguoiDangKi nvarchar(30),
	QuanHeKS nvarchar(12),
	NguoiCap nvarchar(30),
	ChucVu nvarchar(12),
	NoiSinh nvarchar(50),
	NoiCap nvarchar(50),
	NgayCap date,
	HoTenCha nvarchar(30),
	DanTocCha tinyint,
	QuocTichCha tiyint,
	HoTenMe nvarchar(30),
	DanTocMe tinyint,
	QuocTichMe tinyint
	
)
create table DanToc(
	MaDT tinyint not null primary key,
	TenDanToc nvarchar(16)
)
create table TonGiao(
	MaTG tinyint not null primary key,
	TenTonGiao nvarchar(31)
)
create table TrinhDo(
	MaTD tinyint not null primary key,
	TenTrinhDo nvarchar(23)
)
create table QuocTich(
	MaQT tinyint not null primary key,
	TenQuocTich nvarchar(8)
)
create table GiayChungTu(
	MaCT int not null primary key,-- tuong tự các mã khai sinh
	NgayChet date,
	NoiChet nvarchar(50),
	LyDoChet nvarchar(50),
	NgayCap date,
	NoiCap nvarchar(50),
	NguoiDangKi nvarchar(30),
	CanBoDangKi nvarchar(30),
	ChucVu nvarchar(12)
)
--đơn  vị hành chính
create table PhuongXa(
	MaPX tinyint not null primary key,
	TenPhuongXa nvarchar(30),
	MaQH tinyint
)
create table QuanHuyen(
	MaQH tinyint not null primary key,
	TenQuanHuyen nvarchar(30),
	--MaT tinyint
)
/*
create table Tinh(
	MaT tinyint not null primary key,
	TenTinh nvarchar(30)
)
----*/
create table NguoiDung(
	MaND int not null primary key,
	HoTen nvarchar(30),
	TenDangNhap varchar(15),
	ChucVu nvarchar(20),
	MatKhau varchar(15),
	MaPX tinyint
)
create table SoHoKhau(
	MaSHK int primary key not null,
	SoNha varchar(6),
	Duong nvarchar(30),
	KhuPho tinyint,
	MaPX tinyint
)
create table ChuyenDi(
	MaCDi bigint primary key not null,
	MaNK int,
	NoiChuyenDi nvarchar(50),
	LyDoDi nvarchar(50),
	NgayChuyenDi date,
)
create table ChuyenDen(
	MaCDen bigint primary key not null,
	MaNK int,
	NoiChuyenDen nvarchar(50),
	NgayChuyenDen date,
	LyDoDen nvarchar(50)
)
--xem thử bảng này cần ko 
create table ThietLap(
	MaPX tinyint primary key,
	MaQH tinyint,
)
--hihi
go 
-- khoa ngoai cho bảng nhân khẩu
alter table NhanKhau
add constraint fk_TG_NK foreign key (MaTG) references TonGiao(MaTG)
alter table NhanKhau
add constraint fk_DT_NK foreign key (MaTD) references DanToc(MaDT)
alter table NhanKhau
add constraint fk_QT_NK foreign key (MaQT) references QuocTich(MaQT)
alter table NhanKhau
add constraint fk_TD_NK foreign key (MaTD) references TrinhDo(MaTD)
--bảng chuyen den 
alter table NhanKhau
add constraint fk_NK_CDen foreign key (MaNK) references NhanKhau(MaNK)
alter table NhanKhau
add constraint fk_NK_CDi foreign key (MaNK) references NhanKhau(MaNK)
--nhân khẩu
alter table NhanKhau
add constraint fk_KS_NK foreign key (MaKS) references GiayKhaiSinh(MaKS)
alter table NhanKhau
add constraint fk_KT_NK foreign key (MaCT) references GiayChungTu(MaCT)
alter table NhanKhau
add constraint fk_SHK_NK foreign key (MaSHK) references SoHoKhau(MaSHK)

--khoa ngoai cho quận huyện

alter table PhuongXa
add constraint fk_QH_PX foreign key (MaQH) references QuanHuyen(MaQH)
/* làm thừa
alter table QuanHuyen
add constraint fk_T_QH foreign key(MaT) references Tinh(MaT)

/*khoa ngoai cho phường xã. đa chuyen sang bang thiet lap, 
alter table SoHoKhau
add constraint fk_PX_SHK foreign key (MaPX) references PhuongXa(MaPX)
*/
--khoa ngoai cho thiet lap
alter table SoHoKhau
add constraint fk_TL_SHK foreign key (MaPX) references ThietLap(MaPX)
--
--khhoa ngoai người dùng
alter table NguoiDung
add constraint fk_PX_ND foreign key (MaPX) references PhuongXa(MaPX)

--khong có, cho bang NK_SHK

/*
alter table SHK_NK
add constraint fk_SHK_NK_NK foreign key (MaNK) references NhanKhau(MaNK)
alter table SHK_NK
add constraint fk_SHK_NK_SHK foreign key (MaSHK) references SoHoKhau(MaSHK)
*/


--Nhập liệu cho bảng TonGiao
insert into TonGiao 
values (001,N'Phật Giáo')
insert into TonGiao(MaTG,TenTonGiao) 
values (002,N'Công Giáo')
insert into TonGiao(MaTG,TenTonGiao) 
values (003,N'Tin Lành')
insert into TonGiao(MaTG,TenTonGiao) 
values (004,N'Cao Đài')
insert into TonGiao(MaTG,TenTonGiao) 
values (005,N'Phật Giáo Hòa Hảo')
insert into TonGiao(MaTG,TenTonGiao) 
values (006,N'Hồi Giáo')
insert into TonGiao(MaTG,TenTonGiao) 
values (007,N'Bahá`í')
insert into TonGiao(MaTG,TenTonGiao) 
values (008,N'Tĩnh độ cư sĩ Phật hội Việt Nam')
insert into TonGiao(MaTG,TenTonGiao) 
values (009,N'Đạo Tứ Ân Hiếu Nghĩa')
insert into TonGiao(MaTG,TenTonGiao) 
values (010,N'Đạo Bửu Sơn Kì Hương')
insert into TonGiao(MaTG,TenTonGiao) 
values (011,N'Minh Sư Đạo')
insert into TonGiao(MaTG,TenTonGiao) 
values (012,N'Minh Lý Đạo')
insert into TonGiao(MaTG,TenTonGiao) 
values (013,N'Bà-la-môn')

--Nhap dư liệu cho bảng DanToc

insert into DanToc(MaDT,TenDanToc) 
values (01,N'Kinh')
insert into DanToc(MaDT,TenDanToc) 
values (02,N'Tày')
insert into DanToc(MaDT,TenDanToc) 
values (03,N'Thái')
insert into DanToc(MaDT,TenDanToc) 
values (04,N'Hoa')
insert into DanToc(MaDT,TenDanToc) 
values (05,N'Khơ Me')
insert into DanToc(MaDT,TenDanToc) 
values (06,N'Mường')
insert into DanToc(MaDT,TenDanToc) 
values (07,N'Nùng')
insert into DanToc(MaDT,TenDanToc) 
values (08,N'Hmông')
insert into DanToc(MaDT,TenDanToc) 
values (09,N'Dao')
insert into DanToc(MaDT,TenDanToc) 
values (10,N'Gia rai')
insert into DanToc(MaDT,TenDanToc) 
values (11,N'Ngái')
insert into DanToc(MaDT,TenDanToc) 
values (12,N'Ê đê')
insert into DanToc(MaDT,TenDanToc) 
values (13,N'Ba Na')
insert into DanToc(MaDT,TenDanToc) 
values (14,N'Cơ Ho')
insert into DanToc(MaDT,TenDanToc) 
values (15,N'Sán Chay')
insert into DanToc(MaDT,TenDanToc) 
values (16,N'Xơ Đăng')
insert into DanToc(MaDT,TenDanToc) 
values (17,N'Chăm')
insert into DanToc(MaDT,TenDanToc) 
values (18,N'Sán Dìu')
insert into DanToc(MaDT,TenDanToc) 
values (19,N'Hrê')
insert into DanToc(MaDT,TenDanToc) 
values (20,N'Mnông')
insert into DanToc(MaDT,TenDanToc) 
values (21,N'Ra Glai')
insert into DanToc(MaDT,TenDanToc) 
values (22,N'Xtiêng')
insert into DanToc(MaDT,TenDanToc) 
values (23,N'Bru-Vân Kiều')
insert into DanToc(MaDT,TenDanToc) 
values (24,N'Thổ')
insert into DanToc(MaDT,TenDanToc) 
values (25,N'Giáy')
insert into DanToc(MaDT,TenDanToc) 
values (26,N'Cơ Tu')
insert into DanToc(MaDT,TenDanToc) 
values (27,N'Giẻ-Tiêng')
insert into DanToc(MaDT,TenDanToc) 
values (28,N'Mạ')
insert into DanToc(MaDT,TenDanToc) 
values (29,N'Khơ Mú')
insert into DanToc(MaDT,TenDanToc) 
values (30,N'Co')
insert into DanToc(MaDT,TenDanToc) 
values (31,N'Tà Ôi')
insert into DanToc(MaDT,TenDanToc) 
values (32,N'Chơ Ro')
insert into DanToc(MaDT,TenDanToc) 
values (33,N'Kháng')
insert into DanToc(MaDT,TenDanToc) 
values (34,N'Xinh Mun')
insert into DanToc(MaDT,TenDanToc) 
values (35,N'Hà Nhì')
insert into DanToc(MaDT,TenDanToc) 
values (36,N'Chu Ru')
insert into DanToc(MaDT,TenDanToc) 
values (37,N'Lào')
insert into DanToc(MaDT,TenDanToc) 
values (38,N'La Chí')
insert into DanToc(MaDT,TenDanToc) 
values (39,N'La Ha')
insert into DanToc(MaDT,TenDanToc) 
values (40,N'Phú Lá')
insert into DanToc(MaDT,TenDanToc) 
values (41,N'La Hủ')
insert into DanToc(MaDT,TenDanToc) 
values (42,N'Lô Lô')
insert into DanToc(MaDT,TenDanToc) 
values (43,N'Lự')
insert into DanToc(MaDT,TenDanToc) 
values (44,N'Chứt')
insert into DanToc(MaDT,TenDanToc) 
values (45,N'Mảng')
insert into DanToc(MaDT,TenDanToc) 
values (46,N'Pà Thẻn')
insert into DanToc(MaDT,TenDanToc) 
values (47,N'Cờ Lao')
insert into DanToc(MaDT,TenDanToc) 
values (48,N'Cống')
insert into DanToc(MaDT,TenDanToc) 
values (49,N'Bố Y')
insert into DanToc(MaDT,TenDanToc) 
values (50,N'Si La')
insert into DanToc(MaDT,TenDanToc) 
values (51,N'Pu Péo')
insert into DanToc(MaDT,TenDanToc) 
values (52,N'Brâu')
insert into DanToc(MaDT,TenDanToc) 
values (53,N'Ơ Đu')
insert into DanToc(MaDT,TenDanToc) 
values (54,N'Rơ măm')
insert into DanToc(MaDT,TenDanToc) 
values (55,N'Người Nước Ngoài')

--Nhap liêu cho bang Quoctich

insert into QuocTich(MaQT,TenQuocTich)
values (01,N'Việt Nam')

--Nhap liệu cho bảng TrinhDo

insert into TrinhDo(MaTD,TenTrinhDo)
values (01,N'Không biết chữ')
insert into TrinhDo(MaTD,TenTrinhDo)
values (02,N'Không bằng cấp')
insert into TrinhDo(MaTD,TenTrinhDo)
values (03,N'Tiểu học')
insert into TrinhDo(MaTD,TenTrinhDo)
values (04,N'Trung học cơ sở')
insert into TrinhDo(MaTD,TenTrinhDo)
values (05,N'Trung học phổ thông')
insert into TrinhDo(MaTD,TenTrinhDo)
values (06,N'Trung cấp chuyên nghiệp')
insert into TrinhDo(MaTD,TenTrinhDo)
values (07,N'Cao đẳng')
insert into TrinhDo(MaTD,TenTrinhDo)
values (08,N'Đại học')
insert into TrinhDo(MaTD,TenTrinhDo)
values (09,N'Trên đại học')


--nhập liệu cho bảng Tinh
/*
insert into Tinh(MaT,TenTinh)
values (01,N'Long An')
insert into Tinh(MaT,TenTinh)
values (02,N'Tp Hồ Chí Minh')
insert into Tinh(MaT,TenTinh)
values (03,N'Bến Tre')
*/
--nhap lieu cho bang QuanHuyen

insert into QuanHuyen(MaQH,TenQuanHuyen)
values (01,N'Bến Lức')
insert into QuanHuyen(MaQH,TenQuanHuyen)
values (02,N'Thủ Thừa')
insert into QuanHuyen(MaQH,TenQuanHuyen)
values (03,N'Thạnh Hóa')
insert into QuanHuyen(MaQH,TenQuanHuyen)
values (04,N'Cần Giuộc')
insert into QuanHuyen(MaQH,TenQuanHuyen)
values (05,N'Cần Đước')
insert into QuanHuyen(MaQH,TenQuanHuyen)
values (06,N'Đức Huệ')
insert into QuanHuyen(MaQH,TenQuanHuyen)
values (07,N'Tân Hưng')
--nhap lieu cho bang PhuongXa

insert into PhuongXa(MaPX,MaQH,TenPhuongXa)
values (01,01,N'Lương Bình')
insert into PhuongXa(MaPX,MaQH,TenPhuongXa)
values (02,01,N'Lương Hòa')
insert into PhuongXa(MaPX,MaQH,TenPhuongXa)
values (03,01,N'An Thạnh')
insert into PhuongXa(MaPX,MaQH,TenPhuongXa)
values (04,01,N'Tân Hòa')

--nhap liệu cho bảng NguoiDung

insert into NguoiDung(MaND,HoTen,TenDangNhap,ChucVu,MatKhau,MaPX)
values (01,N'Nguyễn văn Tèo','NVAN',N'Trưởng Công an','123',01)
insert into NguoiDung(MaND,HoTen,TenDangNhap,ChucVu,MatKhau,MaPX)
values (02,N'Lê Thị Việt','NVTY',N'Trưởng Công an','123',02)

--nhap liệu cho bảng KhaiSinh
insert into GiayKhaiSinh(MaKS,NoiCap,NguoiDangKi,NgayCap,NoiSinh,QuanHeKS,NguoiCap,ChucVu,HoTenCha,QuocTichCha,DanTocCha,HoTenMe,QuocTichMe,TonGiaoMe)
values (0,'0',N'0',,'0','0','0','0','0','0','0','0','0','0')

--nhap lieu cho bang ChungTu
insert into GiayChungTu(MaCT,NgayChet,NoiChet,LyDoChet,NgayCap,NoiCap,NguoiCap,ChucVu,NguoiDangKi)
values (0,,0,0,,)

--Nhap liệu cho bảng ChuyenDen
insert into ChuyenDen(MaCDen,MaNK,NoiChuyenDen,NgayChuyenDen,LyDoDen)
values (0,0,0,,0)

--nhap liệu cho bảng ChuyenDi

insert into ChuyenDi(MaCDi,MaNK,NoiChuyenDi,LyDoDi,NgayChuyenDi)
values (0,0,0,0,,)

